<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1.箭头函数类似于ES5中的匿名函数
        var fn = function(){
            return 1;
        }

        let fn1 = () =>{
            return 1;
        }

        // 2.箭头函数的简写形式

        // (1)如果一个箭头函数的形参的数量只有1个，圆括号可以省掉
        // let fn2 = (a) =>{
        //     return a * 2;
        // }

        // 写成
        // let fn2 = a =>{
        //     return a * 2;
        // }

        // (2)如果箭头函数的函数体中，只有一句语句，
        // 且这句语句就是返回语句，花括号{}和return关键字都可以省略
        let fn2 = (a) =>{
            return a * 2;
        }

        // 写成
        let fn3 = a => a * 2;
        console.log(fn3(10));//20


        // 一个箭头函数，返回一个对象

        let fn4 = () =>({ name:"jack",age:20});

        // 使用场景
        // 1.定时器的回调函数里
        setTimeout(()=>{
            console.log("定时器");
        },2000)

        // 2.数组的回调函数
        [1,2,3,4,5].forEach((item,index,arr) => {
            console.log(item);
        });

        let arr1 = [1,2,3,4,5].map((item) => { return item*item });
        let arr2 = [1,2,3,4,5].map(item => item*item)

    </script>
</body>
</html>